/*对axios进行二次封装,然后进行统一管理,为的是后续调用时不用重复写*/
import axios from 'axios'
//引入NProgress做进度条
import NProgress from 'nprogress'
//引入NProgress样式
import 'nprogress/nprogress.css'

// 引入element-ui
import {Message} from 'element-ui'


//创建一个axios实例对象,以后项目中都用这个实例发送请求
const ajax = axios.create({
    baseURL:'/api', // 基础路径
    timeout:1500, //超时时间
})

// 请求拦截器
ajax.interceptors.request.use((config)=>{ //config配置
    //进度条开始走
	NProgress.start()
    return config //此处必须要有返回值 返回配置信息
})

// 响应拦截器
ajax.interceptors.response.use(
    // 进入到响应拦截器,代表响应成功了
    response =>{
        //返回响应后进度条停止
		NProgress.done();
        return response.data // 将服务器返回的数据交出去
    },
    error =>{ //响应失败的回调
        // 在这里进行统一错误处理
        Message.error(error.Message)
        //进度条停止
		NProgress.done();
        // 并返回失败的promise实例
        return new Promise(()=>{})  // 此处没有返回失败的promise是因为在这晨直接中断了,后续可根据实际情况进行调整

    }
)

export default ajax